iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
Software Development

Python 微進階系列 第 2

Python 微進階 Day02 - Python 風格

  • 分享至 

  • xImage
  •  

Python 風格

通常會以 PEP 8 – Style Guide for Python Code 為 Coding Style ,例如以 4 個空格進行縮排等等,對我來說是命名慣例比較容易忘記,因此做個紀錄,主要還是以團隊規範為主,也可以靠編輯器幫忙檢查

命名

  • 模組(Module)、套件(Package)
    • 短名詞,並全部小寫,為了可讀性可加底線
    • sysmodule_namepackage_name
  • 函式(Function)
    • 使用小寫,為了可讀性可加底線
    • def my_func()def function_name():
  • 類別(Class)
    • 使用 CapWords 命名
    • class MyClass():class ClassName(object):
  • 變數(Variable)
    • 使用小寫,為了可讀性可加底線
    • my_varvar_name
  • 常數(Constant)
    • 大寫,單字之間以底線分割
    • CONSTANT_NAME
  • 未使用的變數
    • _ 作為變數名稱

import

  • 盡量別使用 Wildcard imports,如 from module import *
    • 因為後來的會蓋掉前面的同名函式
  • import 需有順序,並且群組間以空行區隔
# Standard library imports.
# 標準內建
import os
import sys

# Related third party imports.
# 第三方
import numpy as np
from django import template

# Local application/library specific imports.
# 本地端
import my_module
from my_math import add

小補充

  • 目前很多 IDE 或是套件其實都可以幫忙自動排序,以 VSCode 來說,滑鼠框選想排序的行數後,右鍵選擇 Sort Imports(排序匯入),可以手動排序,沒選是不會出現的

None

  • is 來比較,否定是 is not,不是 not ... is
# Correct:
if foo is not None:

# Wrong:
if not foo is None:

小補充

  • None 表示空值,等同於 null
  • 用來當佔位符號,x = None
  • None 只等於自己
None == None
# True

None == False
# False

None == 0
# False

other

  • 不要用 == 來比較 Boolean
# Correct:
if greeting:

# Wrong:
if greeting == True:
  • 對序列(sequences (strings、lists、tuples))來說,空的為 False,所以不用 len() 判斷是否為 0
# Correct:
if not seq:
if seq:

# Wrong:
if len(seq):
if not len(seq):

其他詳細可以參考

參考資料

次回

來研究 Python 的字串吧!


上一篇
Python 微進階 Day01 - 介紹
下一篇
Python 微進階 Day03 - string(字串) - 1 - 一般處理
系列文
Python 微進階31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言